↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
goal_in_gaa(A, B, C) → U1_gaa(A, B, C, s2l_in_ga(A, D))
s2l_in_ga(s(X), .(Y, Xs)) → U7_ga(X, Y, Xs, s2l_in_ga(X, Xs))
s2l_in_ga(0, []) → s2l_out_ga(0, [])
U7_ga(X, Y, Xs, s2l_out_ga(X, Xs)) → s2l_out_ga(s(X), .(Y, Xs))
U1_gaa(A, B, C, s2l_out_ga(A, D)) → U2_gaa(A, B, C, applast_in_aaa(D, B, C))
applast_in_aaa(L, X, Last) → U3_aaa(L, X, Last, append_in_aaa(L, .(X, []), LX))
append_in_aaa([], L, L) → append_out_aaa([], L, L)
append_in_aaa(.(H, L1), L2, .(H, L3)) → U6_aaa(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
U6_aaa(H, L1, L2, L3, append_out_aaa(L1, L2, L3)) → append_out_aaa(.(H, L1), L2, .(H, L3))
U3_aaa(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_aaa(L, X, Last, last_in_aa(Last, LX))
last_in_aa(X, .(X, [])) → last_out_aa(X, .(X, []))
last_in_aa(X, .(H, T)) → U5_aa(X, H, T, last_in_aa(X, T))
U5_aa(X, H, T, last_out_aa(X, T)) → last_out_aa(X, .(H, T))
U4_aaa(L, X, Last, last_out_aa(Last, LX)) → applast_out_aaa(L, X, Last)
U2_gaa(A, B, C, applast_out_aaa(D, B, C)) → goal_out_gaa(A, B, C)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PrologToPiTRSProof
goal_in_gaa(A, B, C) → U1_gaa(A, B, C, s2l_in_ga(A, D))
s2l_in_ga(s(X), .(Y, Xs)) → U7_ga(X, Y, Xs, s2l_in_ga(X, Xs))
s2l_in_ga(0, []) → s2l_out_ga(0, [])
U7_ga(X, Y, Xs, s2l_out_ga(X, Xs)) → s2l_out_ga(s(X), .(Y, Xs))
U1_gaa(A, B, C, s2l_out_ga(A, D)) → U2_gaa(A, B, C, applast_in_aaa(D, B, C))
applast_in_aaa(L, X, Last) → U3_aaa(L, X, Last, append_in_aaa(L, .(X, []), LX))
append_in_aaa([], L, L) → append_out_aaa([], L, L)
append_in_aaa(.(H, L1), L2, .(H, L3)) → U6_aaa(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
U6_aaa(H, L1, L2, L3, append_out_aaa(L1, L2, L3)) → append_out_aaa(.(H, L1), L2, .(H, L3))
U3_aaa(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_aaa(L, X, Last, last_in_aa(Last, LX))
last_in_aa(X, .(X, [])) → last_out_aa(X, .(X, []))
last_in_aa(X, .(H, T)) → U5_aa(X, H, T, last_in_aa(X, T))
U5_aa(X, H, T, last_out_aa(X, T)) → last_out_aa(X, .(H, T))
U4_aaa(L, X, Last, last_out_aa(Last, LX)) → applast_out_aaa(L, X, Last)
U2_gaa(A, B, C, applast_out_aaa(D, B, C)) → goal_out_gaa(A, B, C)
GOAL_IN_GAA(A, B, C) → U1_GAA(A, B, C, s2l_in_ga(A, D))
GOAL_IN_GAA(A, B, C) → S2L_IN_GA(A, D)
S2L_IN_GA(s(X), .(Y, Xs)) → U7_GA(X, Y, Xs, s2l_in_ga(X, Xs))
S2L_IN_GA(s(X), .(Y, Xs)) → S2L_IN_GA(X, Xs)
U1_GAA(A, B, C, s2l_out_ga(A, D)) → U2_GAA(A, B, C, applast_in_aaa(D, B, C))
U1_GAA(A, B, C, s2l_out_ga(A, D)) → APPLAST_IN_AAA(D, B, C)
APPLAST_IN_AAA(L, X, Last) → U3_AAA(L, X, Last, append_in_aaa(L, .(X, []), LX))
APPLAST_IN_AAA(L, X, Last) → APPEND_IN_AAA(L, .(X, []), LX)
APPEND_IN_AAA(.(H, L1), L2, .(H, L3)) → U6_AAA(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
APPEND_IN_AAA(.(H, L1), L2, .(H, L3)) → APPEND_IN_AAA(L1, L2, L3)
U3_AAA(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_AAA(L, X, Last, last_in_aa(Last, LX))
U3_AAA(L, X, Last, append_out_aaa(L, .(X, []), LX)) → LAST_IN_AA(Last, LX)
LAST_IN_AA(X, .(H, T)) → U5_AA(X, H, T, last_in_aa(X, T))
LAST_IN_AA(X, .(H, T)) → LAST_IN_AA(X, T)
goal_in_gaa(A, B, C) → U1_gaa(A, B, C, s2l_in_ga(A, D))
s2l_in_ga(s(X), .(Y, Xs)) → U7_ga(X, Y, Xs, s2l_in_ga(X, Xs))
s2l_in_ga(0, []) → s2l_out_ga(0, [])
U7_ga(X, Y, Xs, s2l_out_ga(X, Xs)) → s2l_out_ga(s(X), .(Y, Xs))
U1_gaa(A, B, C, s2l_out_ga(A, D)) → U2_gaa(A, B, C, applast_in_aaa(D, B, C))
applast_in_aaa(L, X, Last) → U3_aaa(L, X, Last, append_in_aaa(L, .(X, []), LX))
append_in_aaa([], L, L) → append_out_aaa([], L, L)
append_in_aaa(.(H, L1), L2, .(H, L3)) → U6_aaa(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
U6_aaa(H, L1, L2, L3, append_out_aaa(L1, L2, L3)) → append_out_aaa(.(H, L1), L2, .(H, L3))
U3_aaa(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_aaa(L, X, Last, last_in_aa(Last, LX))
last_in_aa(X, .(X, [])) → last_out_aa(X, .(X, []))
last_in_aa(X, .(H, T)) → U5_aa(X, H, T, last_in_aa(X, T))
U5_aa(X, H, T, last_out_aa(X, T)) → last_out_aa(X, .(H, T))
U4_aaa(L, X, Last, last_out_aa(Last, LX)) → applast_out_aaa(L, X, Last)
U2_gaa(A, B, C, applast_out_aaa(D, B, C)) → goal_out_gaa(A, B, C)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
GOAL_IN_GAA(A, B, C) → U1_GAA(A, B, C, s2l_in_ga(A, D))
GOAL_IN_GAA(A, B, C) → S2L_IN_GA(A, D)
S2L_IN_GA(s(X), .(Y, Xs)) → U7_GA(X, Y, Xs, s2l_in_ga(X, Xs))
S2L_IN_GA(s(X), .(Y, Xs)) → S2L_IN_GA(X, Xs)
U1_GAA(A, B, C, s2l_out_ga(A, D)) → U2_GAA(A, B, C, applast_in_aaa(D, B, C))
U1_GAA(A, B, C, s2l_out_ga(A, D)) → APPLAST_IN_AAA(D, B, C)
APPLAST_IN_AAA(L, X, Last) → U3_AAA(L, X, Last, append_in_aaa(L, .(X, []), LX))
APPLAST_IN_AAA(L, X, Last) → APPEND_IN_AAA(L, .(X, []), LX)
APPEND_IN_AAA(.(H, L1), L2, .(H, L3)) → U6_AAA(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
APPEND_IN_AAA(.(H, L1), L2, .(H, L3)) → APPEND_IN_AAA(L1, L2, L3)
U3_AAA(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_AAA(L, X, Last, last_in_aa(Last, LX))
U3_AAA(L, X, Last, append_out_aaa(L, .(X, []), LX)) → LAST_IN_AA(Last, LX)
LAST_IN_AA(X, .(H, T)) → U5_AA(X, H, T, last_in_aa(X, T))
LAST_IN_AA(X, .(H, T)) → LAST_IN_AA(X, T)
goal_in_gaa(A, B, C) → U1_gaa(A, B, C, s2l_in_ga(A, D))
s2l_in_ga(s(X), .(Y, Xs)) → U7_ga(X, Y, Xs, s2l_in_ga(X, Xs))
s2l_in_ga(0, []) → s2l_out_ga(0, [])
U7_ga(X, Y, Xs, s2l_out_ga(X, Xs)) → s2l_out_ga(s(X), .(Y, Xs))
U1_gaa(A, B, C, s2l_out_ga(A, D)) → U2_gaa(A, B, C, applast_in_aaa(D, B, C))
applast_in_aaa(L, X, Last) → U3_aaa(L, X, Last, append_in_aaa(L, .(X, []), LX))
append_in_aaa([], L, L) → append_out_aaa([], L, L)
append_in_aaa(.(H, L1), L2, .(H, L3)) → U6_aaa(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
U6_aaa(H, L1, L2, L3, append_out_aaa(L1, L2, L3)) → append_out_aaa(.(H, L1), L2, .(H, L3))
U3_aaa(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_aaa(L, X, Last, last_in_aa(Last, LX))
last_in_aa(X, .(X, [])) → last_out_aa(X, .(X, []))
last_in_aa(X, .(H, T)) → U5_aa(X, H, T, last_in_aa(X, T))
U5_aa(X, H, T, last_out_aa(X, T)) → last_out_aa(X, .(H, T))
U4_aaa(L, X, Last, last_out_aa(Last, LX)) → applast_out_aaa(L, X, Last)
U2_gaa(A, B, C, applast_out_aaa(D, B, C)) → goal_out_gaa(A, B, C)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
LAST_IN_AA(X, .(H, T)) → LAST_IN_AA(X, T)
goal_in_gaa(A, B, C) → U1_gaa(A, B, C, s2l_in_ga(A, D))
s2l_in_ga(s(X), .(Y, Xs)) → U7_ga(X, Y, Xs, s2l_in_ga(X, Xs))
s2l_in_ga(0, []) → s2l_out_ga(0, [])
U7_ga(X, Y, Xs, s2l_out_ga(X, Xs)) → s2l_out_ga(s(X), .(Y, Xs))
U1_gaa(A, B, C, s2l_out_ga(A, D)) → U2_gaa(A, B, C, applast_in_aaa(D, B, C))
applast_in_aaa(L, X, Last) → U3_aaa(L, X, Last, append_in_aaa(L, .(X, []), LX))
append_in_aaa([], L, L) → append_out_aaa([], L, L)
append_in_aaa(.(H, L1), L2, .(H, L3)) → U6_aaa(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
U6_aaa(H, L1, L2, L3, append_out_aaa(L1, L2, L3)) → append_out_aaa(.(H, L1), L2, .(H, L3))
U3_aaa(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_aaa(L, X, Last, last_in_aa(Last, LX))
last_in_aa(X, .(X, [])) → last_out_aa(X, .(X, []))
last_in_aa(X, .(H, T)) → U5_aa(X, H, T, last_in_aa(X, T))
U5_aa(X, H, T, last_out_aa(X, T)) → last_out_aa(X, .(H, T))
U4_aaa(L, X, Last, last_out_aa(Last, LX)) → applast_out_aaa(L, X, Last)
U2_gaa(A, B, C, applast_out_aaa(D, B, C)) → goal_out_gaa(A, B, C)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
LAST_IN_AA(X, .(H, T)) → LAST_IN_AA(X, T)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
LAST_IN_AA → LAST_IN_AA
LAST_IN_AA → LAST_IN_AA
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PrologToPiTRSProof
APPEND_IN_AAA(.(H, L1), L2, .(H, L3)) → APPEND_IN_AAA(L1, L2, L3)
goal_in_gaa(A, B, C) → U1_gaa(A, B, C, s2l_in_ga(A, D))
s2l_in_ga(s(X), .(Y, Xs)) → U7_ga(X, Y, Xs, s2l_in_ga(X, Xs))
s2l_in_ga(0, []) → s2l_out_ga(0, [])
U7_ga(X, Y, Xs, s2l_out_ga(X, Xs)) → s2l_out_ga(s(X), .(Y, Xs))
U1_gaa(A, B, C, s2l_out_ga(A, D)) → U2_gaa(A, B, C, applast_in_aaa(D, B, C))
applast_in_aaa(L, X, Last) → U3_aaa(L, X, Last, append_in_aaa(L, .(X, []), LX))
append_in_aaa([], L, L) → append_out_aaa([], L, L)
append_in_aaa(.(H, L1), L2, .(H, L3)) → U6_aaa(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
U6_aaa(H, L1, L2, L3, append_out_aaa(L1, L2, L3)) → append_out_aaa(.(H, L1), L2, .(H, L3))
U3_aaa(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_aaa(L, X, Last, last_in_aa(Last, LX))
last_in_aa(X, .(X, [])) → last_out_aa(X, .(X, []))
last_in_aa(X, .(H, T)) → U5_aa(X, H, T, last_in_aa(X, T))
U5_aa(X, H, T, last_out_aa(X, T)) → last_out_aa(X, .(H, T))
U4_aaa(L, X, Last, last_out_aa(Last, LX)) → applast_out_aaa(L, X, Last)
U2_gaa(A, B, C, applast_out_aaa(D, B, C)) → goal_out_gaa(A, B, C)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PrologToPiTRSProof
APPEND_IN_AAA(.(H, L1), L2, .(H, L3)) → APPEND_IN_AAA(L1, L2, L3)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PrologToPiTRSProof
APPEND_IN_AAA → APPEND_IN_AAA
APPEND_IN_AAA → APPEND_IN_AAA
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
S2L_IN_GA(s(X), .(Y, Xs)) → S2L_IN_GA(X, Xs)
goal_in_gaa(A, B, C) → U1_gaa(A, B, C, s2l_in_ga(A, D))
s2l_in_ga(s(X), .(Y, Xs)) → U7_ga(X, Y, Xs, s2l_in_ga(X, Xs))
s2l_in_ga(0, []) → s2l_out_ga(0, [])
U7_ga(X, Y, Xs, s2l_out_ga(X, Xs)) → s2l_out_ga(s(X), .(Y, Xs))
U1_gaa(A, B, C, s2l_out_ga(A, D)) → U2_gaa(A, B, C, applast_in_aaa(D, B, C))
applast_in_aaa(L, X, Last) → U3_aaa(L, X, Last, append_in_aaa(L, .(X, []), LX))
append_in_aaa([], L, L) → append_out_aaa([], L, L)
append_in_aaa(.(H, L1), L2, .(H, L3)) → U6_aaa(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
U6_aaa(H, L1, L2, L3, append_out_aaa(L1, L2, L3)) → append_out_aaa(.(H, L1), L2, .(H, L3))
U3_aaa(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_aaa(L, X, Last, last_in_aa(Last, LX))
last_in_aa(X, .(X, [])) → last_out_aa(X, .(X, []))
last_in_aa(X, .(H, T)) → U5_aa(X, H, T, last_in_aa(X, T))
U5_aa(X, H, T, last_out_aa(X, T)) → last_out_aa(X, .(H, T))
U4_aaa(L, X, Last, last_out_aa(Last, LX)) → applast_out_aaa(L, X, Last)
U2_gaa(A, B, C, applast_out_aaa(D, B, C)) → goal_out_gaa(A, B, C)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PrologToPiTRSProof
S2L_IN_GA(s(X), .(Y, Xs)) → S2L_IN_GA(X, Xs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
↳ PrologToPiTRSProof
S2L_IN_GA(s(X)) → S2L_IN_GA(X)
From the DPs we obtained the following set of size-change graphs:
goal_in_gaa(A, B, C) → U1_gaa(A, B, C, s2l_in_ga(A, D))
s2l_in_ga(s(X), .(Y, Xs)) → U7_ga(X, Y, Xs, s2l_in_ga(X, Xs))
s2l_in_ga(0, []) → s2l_out_ga(0, [])
U7_ga(X, Y, Xs, s2l_out_ga(X, Xs)) → s2l_out_ga(s(X), .(Y, Xs))
U1_gaa(A, B, C, s2l_out_ga(A, D)) → U2_gaa(A, B, C, applast_in_aaa(D, B, C))
applast_in_aaa(L, X, Last) → U3_aaa(L, X, Last, append_in_aaa(L, .(X, []), LX))
append_in_aaa([], L, L) → append_out_aaa([], L, L)
append_in_aaa(.(H, L1), L2, .(H, L3)) → U6_aaa(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
U6_aaa(H, L1, L2, L3, append_out_aaa(L1, L2, L3)) → append_out_aaa(.(H, L1), L2, .(H, L3))
U3_aaa(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_aaa(L, X, Last, last_in_aa(Last, LX))
last_in_aa(X, .(X, [])) → last_out_aa(X, .(X, []))
last_in_aa(X, .(H, T)) → U5_aa(X, H, T, last_in_aa(X, T))
U5_aa(X, H, T, last_out_aa(X, T)) → last_out_aa(X, .(H, T))
U4_aaa(L, X, Last, last_out_aa(Last, LX)) → applast_out_aaa(L, X, Last)
U2_gaa(A, B, C, applast_out_aaa(D, B, C)) → goal_out_gaa(A, B, C)
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
goal_in_gaa(A, B, C) → U1_gaa(A, B, C, s2l_in_ga(A, D))
s2l_in_ga(s(X), .(Y, Xs)) → U7_ga(X, Y, Xs, s2l_in_ga(X, Xs))
s2l_in_ga(0, []) → s2l_out_ga(0, [])
U7_ga(X, Y, Xs, s2l_out_ga(X, Xs)) → s2l_out_ga(s(X), .(Y, Xs))
U1_gaa(A, B, C, s2l_out_ga(A, D)) → U2_gaa(A, B, C, applast_in_aaa(D, B, C))
applast_in_aaa(L, X, Last) → U3_aaa(L, X, Last, append_in_aaa(L, .(X, []), LX))
append_in_aaa([], L, L) → append_out_aaa([], L, L)
append_in_aaa(.(H, L1), L2, .(H, L3)) → U6_aaa(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
U6_aaa(H, L1, L2, L3, append_out_aaa(L1, L2, L3)) → append_out_aaa(.(H, L1), L2, .(H, L3))
U3_aaa(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_aaa(L, X, Last, last_in_aa(Last, LX))
last_in_aa(X, .(X, [])) → last_out_aa(X, .(X, []))
last_in_aa(X, .(H, T)) → U5_aa(X, H, T, last_in_aa(X, T))
U5_aa(X, H, T, last_out_aa(X, T)) → last_out_aa(X, .(H, T))
U4_aaa(L, X, Last, last_out_aa(Last, LX)) → applast_out_aaa(L, X, Last)
U2_gaa(A, B, C, applast_out_aaa(D, B, C)) → goal_out_gaa(A, B, C)
GOAL_IN_GAA(A, B, C) → U1_GAA(A, B, C, s2l_in_ga(A, D))
GOAL_IN_GAA(A, B, C) → S2L_IN_GA(A, D)
S2L_IN_GA(s(X), .(Y, Xs)) → U7_GA(X, Y, Xs, s2l_in_ga(X, Xs))
S2L_IN_GA(s(X), .(Y, Xs)) → S2L_IN_GA(X, Xs)
U1_GAA(A, B, C, s2l_out_ga(A, D)) → U2_GAA(A, B, C, applast_in_aaa(D, B, C))
U1_GAA(A, B, C, s2l_out_ga(A, D)) → APPLAST_IN_AAA(D, B, C)
APPLAST_IN_AAA(L, X, Last) → U3_AAA(L, X, Last, append_in_aaa(L, .(X, []), LX))
APPLAST_IN_AAA(L, X, Last) → APPEND_IN_AAA(L, .(X, []), LX)
APPEND_IN_AAA(.(H, L1), L2, .(H, L3)) → U6_AAA(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
APPEND_IN_AAA(.(H, L1), L2, .(H, L3)) → APPEND_IN_AAA(L1, L2, L3)
U3_AAA(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_AAA(L, X, Last, last_in_aa(Last, LX))
U3_AAA(L, X, Last, append_out_aaa(L, .(X, []), LX)) → LAST_IN_AA(Last, LX)
LAST_IN_AA(X, .(H, T)) → U5_AA(X, H, T, last_in_aa(X, T))
LAST_IN_AA(X, .(H, T)) → LAST_IN_AA(X, T)
goal_in_gaa(A, B, C) → U1_gaa(A, B, C, s2l_in_ga(A, D))
s2l_in_ga(s(X), .(Y, Xs)) → U7_ga(X, Y, Xs, s2l_in_ga(X, Xs))
s2l_in_ga(0, []) → s2l_out_ga(0, [])
U7_ga(X, Y, Xs, s2l_out_ga(X, Xs)) → s2l_out_ga(s(X), .(Y, Xs))
U1_gaa(A, B, C, s2l_out_ga(A, D)) → U2_gaa(A, B, C, applast_in_aaa(D, B, C))
applast_in_aaa(L, X, Last) → U3_aaa(L, X, Last, append_in_aaa(L, .(X, []), LX))
append_in_aaa([], L, L) → append_out_aaa([], L, L)
append_in_aaa(.(H, L1), L2, .(H, L3)) → U6_aaa(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
U6_aaa(H, L1, L2, L3, append_out_aaa(L1, L2, L3)) → append_out_aaa(.(H, L1), L2, .(H, L3))
U3_aaa(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_aaa(L, X, Last, last_in_aa(Last, LX))
last_in_aa(X, .(X, [])) → last_out_aa(X, .(X, []))
last_in_aa(X, .(H, T)) → U5_aa(X, H, T, last_in_aa(X, T))
U5_aa(X, H, T, last_out_aa(X, T)) → last_out_aa(X, .(H, T))
U4_aaa(L, X, Last, last_out_aa(Last, LX)) → applast_out_aaa(L, X, Last)
U2_gaa(A, B, C, applast_out_aaa(D, B, C)) → goal_out_gaa(A, B, C)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
GOAL_IN_GAA(A, B, C) → U1_GAA(A, B, C, s2l_in_ga(A, D))
GOAL_IN_GAA(A, B, C) → S2L_IN_GA(A, D)
S2L_IN_GA(s(X), .(Y, Xs)) → U7_GA(X, Y, Xs, s2l_in_ga(X, Xs))
S2L_IN_GA(s(X), .(Y, Xs)) → S2L_IN_GA(X, Xs)
U1_GAA(A, B, C, s2l_out_ga(A, D)) → U2_GAA(A, B, C, applast_in_aaa(D, B, C))
U1_GAA(A, B, C, s2l_out_ga(A, D)) → APPLAST_IN_AAA(D, B, C)
APPLAST_IN_AAA(L, X, Last) → U3_AAA(L, X, Last, append_in_aaa(L, .(X, []), LX))
APPLAST_IN_AAA(L, X, Last) → APPEND_IN_AAA(L, .(X, []), LX)
APPEND_IN_AAA(.(H, L1), L2, .(H, L3)) → U6_AAA(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
APPEND_IN_AAA(.(H, L1), L2, .(H, L3)) → APPEND_IN_AAA(L1, L2, L3)
U3_AAA(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_AAA(L, X, Last, last_in_aa(Last, LX))
U3_AAA(L, X, Last, append_out_aaa(L, .(X, []), LX)) → LAST_IN_AA(Last, LX)
LAST_IN_AA(X, .(H, T)) → U5_AA(X, H, T, last_in_aa(X, T))
LAST_IN_AA(X, .(H, T)) → LAST_IN_AA(X, T)
goal_in_gaa(A, B, C) → U1_gaa(A, B, C, s2l_in_ga(A, D))
s2l_in_ga(s(X), .(Y, Xs)) → U7_ga(X, Y, Xs, s2l_in_ga(X, Xs))
s2l_in_ga(0, []) → s2l_out_ga(0, [])
U7_ga(X, Y, Xs, s2l_out_ga(X, Xs)) → s2l_out_ga(s(X), .(Y, Xs))
U1_gaa(A, B, C, s2l_out_ga(A, D)) → U2_gaa(A, B, C, applast_in_aaa(D, B, C))
applast_in_aaa(L, X, Last) → U3_aaa(L, X, Last, append_in_aaa(L, .(X, []), LX))
append_in_aaa([], L, L) → append_out_aaa([], L, L)
append_in_aaa(.(H, L1), L2, .(H, L3)) → U6_aaa(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
U6_aaa(H, L1, L2, L3, append_out_aaa(L1, L2, L3)) → append_out_aaa(.(H, L1), L2, .(H, L3))
U3_aaa(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_aaa(L, X, Last, last_in_aa(Last, LX))
last_in_aa(X, .(X, [])) → last_out_aa(X, .(X, []))
last_in_aa(X, .(H, T)) → U5_aa(X, H, T, last_in_aa(X, T))
U5_aa(X, H, T, last_out_aa(X, T)) → last_out_aa(X, .(H, T))
U4_aaa(L, X, Last, last_out_aa(Last, LX)) → applast_out_aaa(L, X, Last)
U2_gaa(A, B, C, applast_out_aaa(D, B, C)) → goal_out_gaa(A, B, C)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
LAST_IN_AA(X, .(H, T)) → LAST_IN_AA(X, T)
goal_in_gaa(A, B, C) → U1_gaa(A, B, C, s2l_in_ga(A, D))
s2l_in_ga(s(X), .(Y, Xs)) → U7_ga(X, Y, Xs, s2l_in_ga(X, Xs))
s2l_in_ga(0, []) → s2l_out_ga(0, [])
U7_ga(X, Y, Xs, s2l_out_ga(X, Xs)) → s2l_out_ga(s(X), .(Y, Xs))
U1_gaa(A, B, C, s2l_out_ga(A, D)) → U2_gaa(A, B, C, applast_in_aaa(D, B, C))
applast_in_aaa(L, X, Last) → U3_aaa(L, X, Last, append_in_aaa(L, .(X, []), LX))
append_in_aaa([], L, L) → append_out_aaa([], L, L)
append_in_aaa(.(H, L1), L2, .(H, L3)) → U6_aaa(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
U6_aaa(H, L1, L2, L3, append_out_aaa(L1, L2, L3)) → append_out_aaa(.(H, L1), L2, .(H, L3))
U3_aaa(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_aaa(L, X, Last, last_in_aa(Last, LX))
last_in_aa(X, .(X, [])) → last_out_aa(X, .(X, []))
last_in_aa(X, .(H, T)) → U5_aa(X, H, T, last_in_aa(X, T))
U5_aa(X, H, T, last_out_aa(X, T)) → last_out_aa(X, .(H, T))
U4_aaa(L, X, Last, last_out_aa(Last, LX)) → applast_out_aaa(L, X, Last)
U2_gaa(A, B, C, applast_out_aaa(D, B, C)) → goal_out_gaa(A, B, C)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
LAST_IN_AA(X, .(H, T)) → LAST_IN_AA(X, T)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
LAST_IN_AA → LAST_IN_AA
LAST_IN_AA → LAST_IN_AA
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
APPEND_IN_AAA(.(H, L1), L2, .(H, L3)) → APPEND_IN_AAA(L1, L2, L3)
goal_in_gaa(A, B, C) → U1_gaa(A, B, C, s2l_in_ga(A, D))
s2l_in_ga(s(X), .(Y, Xs)) → U7_ga(X, Y, Xs, s2l_in_ga(X, Xs))
s2l_in_ga(0, []) → s2l_out_ga(0, [])
U7_ga(X, Y, Xs, s2l_out_ga(X, Xs)) → s2l_out_ga(s(X), .(Y, Xs))
U1_gaa(A, B, C, s2l_out_ga(A, D)) → U2_gaa(A, B, C, applast_in_aaa(D, B, C))
applast_in_aaa(L, X, Last) → U3_aaa(L, X, Last, append_in_aaa(L, .(X, []), LX))
append_in_aaa([], L, L) → append_out_aaa([], L, L)
append_in_aaa(.(H, L1), L2, .(H, L3)) → U6_aaa(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
U6_aaa(H, L1, L2, L3, append_out_aaa(L1, L2, L3)) → append_out_aaa(.(H, L1), L2, .(H, L3))
U3_aaa(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_aaa(L, X, Last, last_in_aa(Last, LX))
last_in_aa(X, .(X, [])) → last_out_aa(X, .(X, []))
last_in_aa(X, .(H, T)) → U5_aa(X, H, T, last_in_aa(X, T))
U5_aa(X, H, T, last_out_aa(X, T)) → last_out_aa(X, .(H, T))
U4_aaa(L, X, Last, last_out_aa(Last, LX)) → applast_out_aaa(L, X, Last)
U2_gaa(A, B, C, applast_out_aaa(D, B, C)) → goal_out_gaa(A, B, C)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
APPEND_IN_AAA(.(H, L1), L2, .(H, L3)) → APPEND_IN_AAA(L1, L2, L3)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
APPEND_IN_AAA → APPEND_IN_AAA
APPEND_IN_AAA → APPEND_IN_AAA
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
S2L_IN_GA(s(X), .(Y, Xs)) → S2L_IN_GA(X, Xs)
goal_in_gaa(A, B, C) → U1_gaa(A, B, C, s2l_in_ga(A, D))
s2l_in_ga(s(X), .(Y, Xs)) → U7_ga(X, Y, Xs, s2l_in_ga(X, Xs))
s2l_in_ga(0, []) → s2l_out_ga(0, [])
U7_ga(X, Y, Xs, s2l_out_ga(X, Xs)) → s2l_out_ga(s(X), .(Y, Xs))
U1_gaa(A, B, C, s2l_out_ga(A, D)) → U2_gaa(A, B, C, applast_in_aaa(D, B, C))
applast_in_aaa(L, X, Last) → U3_aaa(L, X, Last, append_in_aaa(L, .(X, []), LX))
append_in_aaa([], L, L) → append_out_aaa([], L, L)
append_in_aaa(.(H, L1), L2, .(H, L3)) → U6_aaa(H, L1, L2, L3, append_in_aaa(L1, L2, L3))
U6_aaa(H, L1, L2, L3, append_out_aaa(L1, L2, L3)) → append_out_aaa(.(H, L1), L2, .(H, L3))
U3_aaa(L, X, Last, append_out_aaa(L, .(X, []), LX)) → U4_aaa(L, X, Last, last_in_aa(Last, LX))
last_in_aa(X, .(X, [])) → last_out_aa(X, .(X, []))
last_in_aa(X, .(H, T)) → U5_aa(X, H, T, last_in_aa(X, T))
U5_aa(X, H, T, last_out_aa(X, T)) → last_out_aa(X, .(H, T))
U4_aaa(L, X, Last, last_out_aa(Last, LX)) → applast_out_aaa(L, X, Last)
U2_gaa(A, B, C, applast_out_aaa(D, B, C)) → goal_out_gaa(A, B, C)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
S2L_IN_GA(s(X), .(Y, Xs)) → S2L_IN_GA(X, Xs)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ QDPSizeChangeProof
S2L_IN_GA(s(X)) → S2L_IN_GA(X)
From the DPs we obtained the following set of size-change graphs: